20 DIM FM$(500),BT$(500),T$(500),DT$(500),NM$(500),HR(500),MN(500)
30 KEY OFF:CLS:SCREEN 1:COLOR 2
40 LINE (15,10)-(15,105),3
50 LINE (30,10)-(30,90)
60 LINE (15,10)-(30,10)
70 LINE (30,90)-(65,90)
80 LINE (15,105)-(65,105):LINE -(65,90)
90 PAINT (16,104)
100 LINE (80,10)-(80,105)
110 LINE (95,20)-(95,90)
120 LINE (95,20)-(135,20)
130 LINE (80,10)-(150,10)
140 LINE (150,10)-(150,105)
150 LINE (135,20)-(135,90)
160 LINE (135,90)-(95,90)
170 LINE (150,105)-(80,105)
180 PAINT (149,104)
190 LINE (165,10)-(165,105)
200 LINE (180,20)-(180,90)
210 LINE (180,20)-(235,20)
220 LINE (165,10)-(235,10)
230 LINE -(235,20)
240 LINE (165,105)-(235,105)
250 LINE (180,90)-(220,90)
260 LINE (235,105)-(235,70)
270 LINE (220,90)-(220,80)
280 LINE -(200,80)
290 LINE (235,70)-(200,70)
300 LINE -(200,80)
310 PAINT (234,71)
320 GET(10,8)-(240,110),PIC
330 KEY(1) ON:ON KEY(1) GOSUB 3430
340 CLS:LOCATE 25,(40-26)/2:PRINT"PRESS F1 TO BEGIN PROGRAM";:FOR COL=0 TO 88 STEP 3:PUT(COL,10),PIC,PSET:FOR PAUSE=1 TO 400:NEXT:NEXT
350 FOR COL=88 TO 42 STEP -2:PUT (COL,10),PIC,PSET:FOR PAUSE=1 TO 500:NEXT:NEXT
360 B$=" by David Mitchell ":FOR COL=1 TO 22:LOCATE 16,COL:PRINT B$:NEXT:SOUND 500,1:SOUND 1000,1
370 FOR COL=22 TO 1 STEP -1:LOCATE 16,COL:PRINT B$:FOR PS=1 TO 50:NEXT:NEXT:SOUND 500,1:SOUND 1000,1
380 FOR COL=1 TO 22:LOCATE 16,COL:PRINT B$:FOR PS=1 TO 100:NEXT:NEXT:SOUND 500,1:SOUND 1000,1
390 FOR COL=22 TO 1 STEP -1:LOCATE 16,COL:PRINT B$:FOR PS=1 TO 150:NEXT:NEXT:SOUND 500,1:SOUND 1000,1
400 FOR COL=1 TO 11:LOCATE 16,COL:PRINT B$:FOR PS=1 TO 200:NEXT:NEXT
410 LOCATE 16,COL:PRINT" ":SOUND 150,1:FOR PS=1 TO 100:NEXT:LOCATE 16,COL:PRINT B$:FOR PS=1 TO 300:NEXT:LOCATE 16,COL:PRINT" ":SOUND 150,2:FOR PS=1 TO 500:NEXT:LOCATE 16,COL:PRINT B$:FOR PS=1 TO 700:NEXT
420 LOCATE 16,COL:PRINT" ":SOUND 150,3:FOR PS=1 TO 1000:NEXT:LOCATE 16,COL:PRINT B$:FOR PS=1 TO 1300:NEXT:LOCATE 16,COL:PRINT" ":SOUND 150,4:FOR PS=1 TO 1500:NEXT:LOCATE 16,COL:PRINT B$:FOR PS=1 TO 1700:NEXT
430 LOCATE 16,COL:PRINT" ":SOUND 150,5:FOR PS=1 TO 2000:NEXT:LOCATE 16,COL:PRINT B$
440 KEY (1) ON:ON KEY(1) GOSUB 0
450 LOCATE 25,1:PRINT SPACE$(39);:FOR G=1 TO 5000:NEXT
455 CLS:SCREEN 0:WIDTH 80:PRINT"Welcome to LOG.":PRINT"If you run this program before and after your work session, it will":PRINT"time your work session and save it in a file":PRINT"of total times for everything.":PRINT
456 PRINT"If you ever need to start over at any time, just press the F1 key":PRINT:PRINT"Also, if you have not let the opening screen run all the way through, without":PRINT"pressing F1, I suggest you do this once.":PRINT:PRINT:PRINT"Press any key to enter LOG!"
2530 FOR DAD=1 TO LEN(X$):IF MID$(X$,DAD,1)=CHR$(32) THEN 2690 ELSE NEXT
2540 NM$=X$
2550 COLOR 7:PRINT:PRINT"What is your name?":WER=15:PRINT"Use capital letters only!":GOSUB 2000:PRINT
2570 OPEN "O",#1,NM$+".JOB"
2580 T$=LEFT$(TIME$,LEN(TIME$)-3)
2590 PRINT #1,T$
2600 PRINT #1,DATE$
2610 PRINT #1,X$
2620 CLOSE
2630 PRINT:PRINT X$" is beginning computer session "NM$" at: "T$;:PRINT" on "DATE$
2640 PRINT"Is this correct? (Y/N)":WER=1:GOSUB 2000
2650 IF X$="Y" OR X$="y" THEN 2680
2660 IF X$<>"N" AND X$<>"n" THEN 2640
2670 KILL NM$+".job":PRINT:PRINT"Do you wish to try again?";:WER=1:GOSUB 2000:IF X$="N" OR X$="n" THEN 470 ELSE 2500
2680 LOCATE 25,1:PRINT"Press any key to continue";:WHILE INKEY$="":WEND:GOTO 470
2690 COLOR 22,0:PRINT:PRINT"INVALID FILE NAME!":BEEP:COLOR 7:GOTO 2510
2700 CLS:PRINT"End a session."
2710 PRINT"What is the session name?":WER=8:GOSUB 2000:FM$=X$
2711 IF X$="" THEN 470
2720 COLOR 7:PRINT:PRINT"What is your name?":WER=15:GOSUB 2000:PRINT
2740 PRNM$=X$
2750 T$=LEFT$(TIME$,LEN(TIME$)-3)
2760 OPEN "I",#1,FM$+".JOB"
2770 INPUT #1,BT$
2780 INPUT #1,DT$
2790 INPUT #1,NM$
2800 CLOSE:PRINT
2810 IF PRNM$<>NM$ THEN PRINT"I'm sorry but you're not the one who started the session":GOTO 2680
2820 KILL FM$+".JOB"
2830 IF FM$="GAMES" OR FM$="games" THEN FM$="PERSONAL USE":GOTO 2850
2840 PRINT:PRINT"What is the name that you want this to be under in the total file":PRINT"17 characters maximum!":PRINT"(<ENTER> if same)":WER=17:GOSUB 2000:IF X$<>"" THEN FM$=X$
2850 OPEN"A",#1,"TOTALTME"
2860 ET$=LEFT$(T$,2)+MID$(T$,4,2)
2870 ST$=LEFT$(BT$,2)+MID$(BT$,4,2)
2880 BT=VAL(ST$):ET=VAL(ET$)
2890 HR=VAL(LEFT$(ET$,2))-VAL(LEFT$(ST$,2)):PRINT
2900 MN=VAL(RIGHT$(ET$,2))-VAL(RIGHT$(ST$,2)):IF MN<0 THEN HR=HR-1:MN=MN+60
2905 PRINT:PRINT"Ending session at "LEFT$(ET$,2)":"RIGHT$(ET$,2)"."
2910 PRINT HR"HOURS AND"MN"MINUTES WERE SPENT ON ";:COLOR 14:PRINT FM$:COLOR 7
3130 CLOSE:PRINT:PRINT:PRINT"(S)creen or (P)rinter?":WER=1:GOSUB 2000
3140 IF X$<>"P" AND X$<>"p" THEN OPEN "O",#1,"SCRN:":CLS:PRINT"Press ^NumLock to pause" ELSE OPEN "O",#1,"lpt1:"
3141 IF X$="p" OR X$="P" THEN N=N+1:PRINT:PRINT"What heading should be used at the top of the printout? (Up to 30 characters)":WER=30:GOSUB 2000:PRINT:PRINT"Printing to printer":ZZ$=X$ ELSE ZZ$="COMPUTER USE"
3150 H=LEN(ZZ$):H=80-H:H=H/2:PRINT #1,TAB(H);ZZ$
3155 PRINT #1,TAB(H);
3160 FOR HJK=1 TO LEN(ZZ$):PRINT #1,"=";:NEXT
3170 PRINT #1,
3180 PRINT #1,"ACTIVITY DATE END TIME START TIME HOURS MINS NAME"